#pragma once

class FlatSphere : public Intersectable
{
	Color _color;

protected:
	Point _center;
	double _radius;
	double _squaredRadius;

public:
	FlatSphere(const Point& center, double radius, const Color& color);
	void WhereIntersects(const Ray&, FirstIntersectionResult&);
	void ColorAtIntersection(SecondIntersectionResult&, const Point&, const Ray&); //always returns color. cuz its flat.
	Direction NormalAtPoint(FirstIntersectionResult&, const Point&);
	virtual ~FlatSphere();
};
